package util;

import java.awt.AWTEvent;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Toolkit;

import AccionBoton.AccionClickRaton;

public class BarridoUsuarios extends Barrido{
	
	int _numBotones;
	int _pos;
	
	public BarridoUsuarios(Teclado teclado, int numBotones, int tiempo){
		_teclado = teclado;
		_teclado.desactivarTeclado();
		_numBotones = numBotones;
		_tiempo = tiempo;
		barrer();
	}
	
	public void barrer(){
		salir = false;
		Robot r = null;
		try {
			r = new Robot();
		} catch (AWTException e) {
			e.printStackTrace();
		}   
		Toolkit t = Toolkit.getDefaultToolkit();
		t.addAWTEventListener(new AccionClickRaton(this), AWTEvent.MOUSE_EVENT_MASK);
		
		_pos = 0;
		
		while(!salir){
			despintarTeclado();
			_teclado.pintarBotonPosicion(0, _pos);
			_teclado.refrescar();
			r.delay(_tiempo);
			if (_pos == _numBotones-1) _pos = 0;
			else _pos++;
		}
		
		despintarTeclado();
		int posicionPulsada = _pos -1;
		if (_pos==0) posicionPulsada = _numBotones-1;
		_teclado.activarBoton(0,posicionPulsada);
		_teclado.clickBoton(0,posicionPulsada);
		_teclado.desactivarBoton(0,posicionPulsada);
	}
	
	public void eventoRaton(boolean retroceso){
		_retroceso = retroceso;
		if(!_retroceso) salir = true;
		else _pos = -1;
		//Para volver a empezar
	}
	
	public void despintarTeclado(){
		for(int j=0; j<_numBotones;j++)
			_teclado.despintarBotonPosicion(0, j);
		_teclado.refrescar();
	}

}
